跳到主要内容

MVVM

详细内容请参考使用视图模型

MVVM 工具包库(.NET 社区工具包的一部分)是标准、自包含、轻量类型的集合,提供用于使用 MVVM 模式构建新式应用的开始实现。

MVVM 工具包通过 CommunityToolkit.Mvvm NuGet 包分发。

无需编写自己的视图模型基类,而是继承自工具包的 ObservableObject 类,该类提供视图模型基类所需的一切。 可以通过以下方法简化 EmployeeViewModel:

using System.ComponentModel;

public class EmployeeViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;
private Employee _model;

public string Name
{
get {...}
set
{
_model.Name = value;
OnPropertyChanged(nameof(Name))
}
}

protected void OnPropertyChanged(string propertyName) =>
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}

简化为以下代码:

using Microsoft.Toolkit.Mvvm.ComponentModel;

public class EmployeeViewModel : ObservableObject
{
private string _name;

public string Name
{
get => _name;
set => SetProperty(ref _name, value);
}
}

可以使用 MVVM 工具包提供的源生成器进一步简化代码。 通过将类设为 partial 并向 [ObservableProperty] 变量添加 private,将生成带有适当属性更改通知的公共属性 Name。

using Microsoft.Toolkit.Mvvm.ComponentModel;

public partial class EmployeeViewModel : ObservableObject
{
[ObservableProperty]
private string _name;
}